package com.zz.check.util;

import java.io.File;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

/**
 * jar包工具类
 * @author zys
 *
 */
public class JarUtil {
	
	/**
	 * 解析并返回jar文件中的class名称
	 * @param jarFile jar文件
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static HashSet<String> getClassNames(File file){
		HashSet<String> classSet=new HashSet<String>();
		JarFile jarFile = null;
		try {
			jarFile = new JarFile(file);
			Enumeration enu = jarFile.entries();
			JarEntry element = null;
			String eleName="";
			while(enu.hasMoreElements()){
				element = (JarEntry) enu.nextElement();
				eleName = element.toString().toUpperCase();
				//以.class / .xml / .properties 结尾的文件
				if(eleName.endsWith(".CLASS")||eleName.endsWith(".XML")||eleName.endsWith(".PROPERTIES")){
					classSet.add(element.getName().replaceAll("/", "."));
				}
			}
			jarFile.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return classSet;
	}
	

	
}
